<?php

class VoluntariosController extends AppController {
	var $name = 'Voluntarios';
	var $components = array ('Pagination','Acl');
	var $helpers = array('Html','Form','Accessibility','Pagination');

	function index() {
		$this->set('title', 'Voluntarios');
		$voluntarios = $this->Voluntario->findAll();
		$this->set('voluntarios', $voluntarios);
	}

	function view( $id=null ) {
		if (!$id) $this->redirect('/voluntarios');
		$this->set('title','Visualizar voluntario');
		$this->Voluntario->id = $id;
		$this->set('voluntario', $this->Voluntario->read());
	}

	function add() {
		$this->set('title','Cadastrar voluntario');
		$this->set('cidades', $this->Voluntario->Cidade->generateList(null, null, null, '{n}.Cidade.id', '{n}.Cidade.nome'));

		// Gerando lista de Unidades da Entidade
		$condition = array('entidade_id'=>$this->getEntidade());
		$this->set('unidades', $this->Voluntario->Unidade->generateList($condition, null, null, '{n}.Unidade.id', '{n}.Unidade.nome'));


		// Gerando lista de Permissões
		$p = new Permissao();
		$perm = $this->Session->read("permissao");
		$condition = array('id' => $perm);
		$permissoes = $p->generateList($condition, null, null, '{n}.Permissao.id', '{n}.Permissao.nome');
		$this->set('permissoes',$permissoes);

		if (!empty($this->data)) {
			$aco = new Aco();
			$aco->create($this->Voluntario->id, null, $this->data['Voluntario']['nome']);

			if ($this->Voluntario->save($this->data)) {

				$this->data['Usuario']['unidade_id'] = $this->data['Voluntario']['unidade_id'];
				$usuario = new Usuario();
				$usuario->save($this->data);

				$voluntario = $this->Voluntario->find("Voluntario.id = ".$this->Voluntario->getLastInsertId());

				$voluntario['Voluntario']['usuario_id'] = $usuario->getLastInsertId();
				$this->Voluntario->save($voluntario);

				$_SESSION['mensagem']['success'][] = 'Voluntario cadastrado com sucesso!';

			} else {
				$_SESSION['mensagem']['error'][] = 'Erro ao tentar cadastrar o voluntario.';
			}
			$voluntario_id = $this->Voluntario->getLastInsertId();
			$this->data['Horario']['voluntario_id'] = $voluntario_id;
			if (!$this->Voluntario->Horario->save($this->data)) {
				$_SESSION['mensagem']['error'][] = 'Erro ao salvar os horários';
			}
			$this->redirect('/voluntarios');
		}
	}

	function edit( $id=null) {
		if (!$id) $this->redirect('/voluntarios');
		$this->set('title','Editar voluntario');
		$this->set('cidades', $this->Voluntario->Cidade->generateList(null, null, null, '{n}.Cidade.id', '{n}.Cidade.nome'));
		$this->set('unidades', $this->Voluntario->Unidade->generateList(null, null, null, '{n}.Unidade.id', '{n}.Unidade.nome'));
		$this->set('usuarios', $this->Voluntario->Usuario->generateList(null, null, null, '{n}.Usuario.id', '{n}.Usuario.nome'));
		$this->Voluntario->id = $id;
		if (empty($this->data)) {
			$this->data = $this->Voluntario->read();
		} else {
			if ($this->Voluntario->save($this->data['Voluntario'])) {
				$_SESSION['mensagem']['success'][] = 'Voluntario alterado com sucesso!';
			} else {
				$_SESSION['mensagem']['error'][] = 'Erro ao tentar alterar o voluntario.';
			}
			if (!$this->Voluntario->Horario->save($this->data)) {
				$_SESSION['mensagem']['error'][] = 'Erro ao salvar os horários';
			}
			$this->redirect('/voluntarios');
		}
		$voluntario = $this->Voluntario->find(array('`Voluntario`.id' => $id));
		$this->set('voluntario', $voluntario);
	}

	function delete($id) {
		if (!$id) $this->redirect('/voluntarios');

		// Encontrando o usuario referente ao voluntario sendo excluido
		$func = $this->Voluntario->findById($id);
		$id_user = $func["Funcionario"]["usuario_id"];

		if ($this->Voluntario->del($id)) {
			$_SESSION['mensagem']['success'][] = 'Voluntario excluido com sucesso!';
		} else {
			$_SESSION['mensagem']['error'][] = 'Erro ao tentar excluir o voluntario.';
		}
		$this->redirect('/voluntarios');
	}
}
?>
